package com.ys.comparatordemo;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;

/**
 * 描述: 外部比较器测试类
 *
 * @author CodeYang
 * @version 2020/12/18 20:11
 */
public class 外部比较器测试类 {
    public static void main(String[] args) {
        // 创建一个Student[]类型的数组
        Student[] arr = new Student[5];
        // 添加数组元素
        arr[0] = new Student("一政", 99, 88.0);
        arr[1] = new Student("李四老大", 27, 78.0);
        arr[2] = new Student("王五", 22, 99.0);
        arr[3] = new Student("赵六", 16, 82);
        arr[4] = new Student("罗七", 30, 99.5);

        // 需求：按照学生的年龄执行升序排序
        //   这里 参数 2 的类 只是为了 实现外部比较器的接口实例化, 相当于一个规则类
       // ArrayUtil.sort(arr, new OrderByAgeAsc());
        /*使用Java 自带 API */
        Arrays.sort(arr,new OrderByAgeAsc());
        // 遍历arr数组中的所有元素
        for (Student stu : arr) {
            System.out.println(stu);
        }
        System.out.println("----------------------------");
        // 需求：按照学生的成绩执行降序排序
       // ArrayUtil.sort(arr, new OrderByScoreDesc());
        Arrays.sort(arr,new OrderByScoreDesc());
        // 遍历arr数组中的所有元素
        for (Student stu : arr) {
            System.out.println(stu);
        }
        System.out.println("----------------------------");
        // 使用姓名来徐
        Arrays.sort(arr,new OrderByNameDesc());
        // 遍历arr数组中的所有元素
        for (Student stu : arr) {
            System.out.println(stu);
        }

    }
}
